As the use of computer systems becomes more widespread, the need for facilitating operation and control of the computer system has become acute. It has become increasingly desirable to permit relatively inexperienced users with little or no training to use a computer system. In this regard, so-called "menu driven" programs, wherein the various operational choices made availabe by the program are displayed for the user, are well known. In the typical menu-driven system, the user enters through the keyboard one or more symbols representative of the particular operational choice to be effected.
Various other systems, such as the Apple LISA system, permit choice of the operational system by positioning an indicator (e.g., cursor) on the display in predetermined relative positions with indicia of the alternative operational choices, to designate the particular choice in lieu of entering the choice through the keyboard.
However, in each instance, the menu mechanism is built into the particular "application" software (i.e. software executed by the system for accomplishing a predetermined task or tasks, such as, for example, text editing, data file manipulation, etc.), and is not generally applicable. Moreover, since the source codes to many programs are not available, it is improbable that the typical user can alter the program to accommodate additional operational branches or to alter the existing menu. There is therefore a need for an interface environment of general applicability which permits the user to designate various alternative commands for applications programs without requiring alteration of the operating or applications programs themselves.
The use of a "mouse" pointing device to facilitate movement of a cursor is, in general, known. A "mouse" typically includes an element for sensing movement of the mouse (up, down, right, left) on a flat surface, and one or more conventional buttons or switches. Signals generated by the movement of the sensing elements may control cursor movement in accordance with physical movement of the mouse on the flat surface. Predetermined commands may be executed by depressing one of the mouse buttons. The functions (commands) assigned to a particular mouse button typically are established and fixed by the program being run on the computer. However, it is sometimes desirable to vary the mouse button function from a fixed predetermined function in accordance with the particular needs of the user and to increase versatility.